Sigma-delta adc with integrated raw image scaling filter

ABSTRACT

A system and method of processing raw image pixel information includes an integrated decimation filter and raw image scaling filter. The decimation filter operates in the time domain; for example, to calculate a weighted average of time samples. The raw image scaling filter operates in the spatial domain; for example, to calculate a weighted average of spatial samples. The raw image pixel information is modulated by a sigma-delta analog-to-digital modulator.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This application relates generally to digital image scaling. More specifically, this application relates to a raw domain image scaling system and method that maintains Bayer consistency.

2. Description of Related Art

In a digital image capturing system, it is common that the resolution requirement for still image capture is higher than that of video output. In such a case, a high-resolution camera capable of supporting the resolution requirement of still image capture is often used. When the camera is used in video mode to produce a video output stream, the data is scaled down to suit the resolution of the video output. For example, a particular image sensor with 8 million pixels (megapixels or MP) can give 8 MP still images. For the same image sensor in video mode, a resolution of 1080×1920 pixels, or approximately 2 MP, may suffice to produce 1080p high-definition (HD) video. Therefore, in 1080p video mode, the image data is scaled down 3× both vertically and horizontally to provide the desired output resolution.

This scaling may be performed either in the raw domain or the RGB domain. An advantage of scaling the image data in the raw domain to the desired video resolution is that it reduces the number of pixels that must be processed through the system. As a result, a majority of processing blocks in an image pipeline or post-processing section can be operated at a lower clock rate than the clock rate required to support full-resolution processing. Operating the processing section at a lower clock rate has significant advantages in reducing electromagnetic interference and reducing power consumption of the system. These advantages are especially valuable in such applications as mobile imaging.

The raw scaling step can be interpreted as a filtering procedure which calculates a weighted average of selected input raw pixels to produce the values of the output raw pixels. The weights used and the pixels selected in the weighted averaging has a large impact on the quality of the output image. To optimize the quality of the output images, a raw domain image scaling method called a “Bayer-consistent raw scaling” (BCRS) method may be used.

When BCRS or another raw domain image scaling method is implemented in an image sensor, it is necessary to incorporate additional circuits, either in the analog domain or in the digital domain (or both), to generate the scaled raw pixels. As a result, it can become necessary to increase the size of the circuit inside the sensor and increase the power consumption of the sensor.

Accordingly, there is a need to incorporate BCRS or another raw domain image scaling method in the sensor in a manner so as to optimize the quality, and match the resolution of the sensor and display, without resulting in a significant increase in circuit complexity and power consumption.

BRIEF SUMMARY OF THE INVENTION

Various aspects of the present disclosure relate to a system and method for processing raw image pixel information. The system and method respectively include an integrated decimation filter and raw image scaling filter. The decimation filter operates in the time domain; for example, to calculate a weighted average of time samples. The raw image scaling filter operates in the spatial domain; for example, to calculate a weighted average of spatial samples. The raw image pixel information is modulated by a sigma-delta analog-to-digital modulator.

In this manner, various aspects of the present disclosure provide for improvements in at least the underlying technical processes of image capturing and image processing.

This disclosure can be embodied in various forms, including business processes, computer-implemented methods, computer program products, computer systems and networks, user interfaces, application programming interfaces, hardware-implemented methods, signal processing circuits, image sensor circuits, application specific integrated circuits, field programmable gate arrays, and the like. The foregoing summary is intended solely to give a general idea of various aspects of the present disclosure, and does not limit the scope of the disclosure in any way.

DESCRIPTION OF THE DRAWINGS

These and other more detailed and specific features of various embodiments are more fully disclosed in the following description, reference being had to the accompanying drawings, in which:

FIG. 1 illustrates an exemplary block diagram of an image sensor according to various aspects of the present disclosure.

FIG. 2 illustrates an exemplary color filter for use with various aspects of the present disclosure.

FIG. 3 illustrates an exemplary (½)× scaling operation according to various aspects of the present disclosure.

FIGS. 4A and 4B respectively illustrate an exemplary sigma-delta analog-to-digital converter according to various aspects of the present disclosure.

FIG. 5 illustrates another exemplary sigma-delta analog-to-digital converter according to various aspects of the present disclosure.

FIG. 6 illustrates several noise-shaping curves according to various aspects of the present disclosure.

FIG. 7 illustrates an exemplary block diagram of an image sensor according to various aspects of the present disclosure.

FIG. 8 illustrates an exemplary filtering representation for scaling according to various aspects of the present disclosure.

FIG. 9 illustrates an exemplary set of (⅓)× optimized filter coefficient arrays for use with various aspects of the present disclosure.

FIG. 10 illustrates an exemplary (⅓)× scaling operation according to various aspects of the present disclosure.

FIG. 11 illustrates an exemplary (¼)× scaling operation according to various aspects of the present disclosure.

FIG. 12 illustrates an exemplary image sensor with a three-column shared ADC configuration according to various aspects of the present disclosure.

FIG. 13 illustrates an exemplary image sensor with a three-column shared dual-port ADC configuration according to various aspects of the present disclosure.

FIG. 14 illustrates an exemplary schedule of an integrated RISF/ADCF for calculating an output R pixel value according to various aspects of the present disclosure.

FIG. 15 illustrates an exemplary schedule of an integrated RISF/ADCF for calculating an output G2 pixel value according to various aspects of the present disclosure.

FIG. 16 illustrates an exemplary schedule of an integrated RISF/ADCF for calculating an output G1 pixel value according to various aspects of the present disclosure.

FIG. 17 illustrates an exemplary schedule of an integrated RISF/ADCF for calculating an output B pixel value according to various aspects of the present disclosure.

DETAILED DESCRIPTION

In the following description, numerous details are set forth, such as flowcharts, data tables, and system configurations. It will be readily apparent to one skilled in the art that these specific details are merely exemplary and not intended to limit the scope of this application.

[Imaging System]

FIG. 1 illustrates an exemplary block diagram of an imaging system comprising an image sensor 100 and an image signal processor (ISP) 200.

Image sensor 100 includes a pixel array 101, including a plurality of pixels 102 arranged in rows and columns. Individual pixels 102 include pixel elements such as a photosensitive element (for example, a photodiode) and associated control circuits (for example, transistors). Image sensor 100 further includes an analog raw scaling circuit 103; one or more analog-to-digital converters (ADCs) 104, which convert the pixel data values into digital form; a digital raw scaling circuit 105; and an output buffer 106.

ISP 200 includes an input buffer 201; a raw domain processing circuit 202; a demosaic circuit 203; one or more RGB domain processing circuits 204, including an RGB scaling circuit 205; and an output buffer 206. Various circuits within ISP 200 are operatively connected to a memory buffer 207.

While the imaging system as particularly illustrated includes multiple image scaling blocks, it should be understood that some of these scaling blocks may be omitted; for example, RGB scaling circuit 205 may only be necessary where image scaling is performed in the RGB domain after demosaicing. Depending on the specific implementation in a practical imaging system, only raw domain scaling or only RGB domain scaling may be present, or both may be included. Additionally, the scaling blocks are not limited to the particular order illustrated in FIG. 1; for example, a raw domain scaling block may be included in raw domain processing circuit 202. When multiple scaling blocks are present, the user or system designer will be able to configure the system to select a desired scaling configuration to suit the needs of the system such as frame rate, power consumption, clock speed, and the like.

Various components of the imaging system may be implemented either in hardware, software, or a mixture of both. Examples of hardware implementations include application specific integrated circuit (ASIC), field programming logic array (FPGA), other programmable logic circuits, discrete circuit elements, and the like. Examples of software implementations include firmware in an embedded chip, software in digital signal processors (DSP), software in a simulator, software in a graphics processing unit (GPU), software in a general purpose central processing unit (CPU), and the like. A mixture of hardware and software may also be used wherein some blocks in the image sensor of FIG. 1 are implemented in hardware, with the remaining blocks implemented in software.

The processing systems and techniques described herein improve the functioning of the image sensor by allowing it to produce output images of high quality with fewer artifacts, using an implementation which requires fewer components and less power.

To provide for color images, a color filter array (CFA) is provided with image sensor 100, so that each pixel gives a data value corresponding to a single primary color. FIG. 2 illustrates a so-called “Bayer” CFA for use with image sensor 101. In this example, R represents the pixels coated or provided with optical red filters, which therefore give only red pixel values. Similarly, B represents the pixels coated or provided with optical blue filters, which therefore give only blue pixel values. Both G1 and G2 represent pixels coated or provided with green optical filters, which therefore give only green pixel values. Because the green pixels sharing a row with red pixels and the green pixels sharing a row with blue pixels may have different pixel characteristics due to cross-talk and other reasons, they are labeled with the different notations G1 and G2, respectively. While the Bayer CFA illustrated in FIG. 2 uses an RGB layout, the CFA is not particularly limited in this regard. For example, other color arrangements are possible such as red/green/blue/white (RGBW); cyan/magenta/yellow (CMY); cyan/magenta/yellow/green (CMYG); and the like.

In FIG. 2, The RGB Bayer CFA comprises a tiled or repeating arrangement of 2×2 blocks 112 of pixels 102, comprising an R pixel in the upper left corner thereof, a G1 pixel in the upper right corner thereof, a G2 pixel in the lower left corner thereof, and a B pixel in the lower right corner thereof. One of ordinary skill in the art will readily recognize that other orderings are possible, such as B/G2/G1/R, G1/R/B/G2, G2/B/R/G1, and the like, as well as other primary color combinations.

FIG. 3 illustrates a general example of a scaling method where N=2; that is, having a scaling factor of (½)×. Here, the output data has a resolution in both the row and column directions which is ½ the resolution of the input data. In this example, a Bayer input region of 4×4 is processed to produce a 2×2 Bayer output region. As illustrated in FIG. 3, input raw data 301 is converted into scaled output data 302 by applying a scaling transformation 303, illustrated in more detail with regard to FIG. 8 below.

FIG. 4A illustrates an exemplary sigma-delta (also referred to as “delta-sigma,” “ΔΣ,” or “ΣΔ”) ADC 400 for use with an imaging system such as the imaging system described above with regard to FIG. 1. For example, ADC 104 shown in FIG. 1 may be implemented using sigma-delta ADC 400 illustrated in FIG. 4A.

Specifically, FIG. 4A illustrates a first-order sigma-delta modulator 400 in the time domain. Sigma-delta ADC 400 includes a difference circuit 401, an integrator 402, a threshold comparator 403 (for example, a 1-bit ADC), a 1-bit digital-to-analog converter (DAC) 404, and a filter 405. Here, filter 405 is an integrated decimation filter and image scaling filter, where the decimation filter operates in the time domain and the image scaling filter operates in the spatial domain. Sigma-delta ADC 400 may be represented by a sigma-delta modulator, corresponding to elements 401-404, which outputs to filter 405.

FIG. 4B illustrates an exemplary waveform at points (i)-(v) of FIG. 4A. For ease of explanation, input waveform (i) is illustrated as a constant voltage waveform over the summing interval, although this disclosure is not particularly limited in this manner. Waveform (ii) illustrates a stream of delta impulses output from 1-bit DAC 404. Waveforms (i) and (ii) are input to difference circuit 401, and output as waveform (iii) which is equivalent to (i)-(ii). This difference is integrated in integrator 402 to produce waveform (iv). Waveform (iv) is compared to a threshold or reference voltage (illustrated as a dashed line in FIG. 4B) in threshold comparator 403 to produce waveform (v). Specifically, threshold comparator 403 generates a pulse beginning when waveform (iv) crosses the threshold, and sustains the pulse until waveform (iv) returns across the threshold again.

FIG. 5 illustrates another exemplary sigma-delta ADC 500 for use with an imaging system such as the imaging system described above with regard to FIG. 1. For example, ADC 104 shown in FIG. 1 may be implemented using a sigma-delta ADC 500 illustrated in FIG. 5.

Specifically, FIG. 5 illustrates a second-order sigma-delta modulator 500 in the time domain. Sigma-delta ADC 500 includes a first difference circuit 501, a first integrator 502, a second difference circuit 503, a second integrator 504, a threshold comparator 505, a 1-bit DAC 506, and a filter 507. As above, filter 507 is an integrated decimation filter and image scaling filter, where the decimation filter operates in the time domain and the image scaling filter operates in the spatial domain. Sigma-delta ADC 500 may be represented by a sigma-delta modulator, corresponding to elements 501-506, which outputs to filter 507.

In other words, first-order sigma-delta ADC 400 contains a single differentiator-integrator pair and second-order sigma-delta ADC 500 contains two differentiator-integrator pairs in sequence. This can be extended to higher orders; for example, a third-order sigma-delta ADC will contain three differentiator-integrator pairs in sequence, a fourth-order sigma-delta ADC will contain four differentiator-integrator pairs, and so on.

FIG. 6 illustrates a comparison between noise-shaping curves of different-order sigma-delta modulators. FIG. 6 represents the output corresponding to waveform (v) of FIG. 4A in the frequency domain. In FIG. 6, the vertical arrow represents the signal (that is, the waveform). The dashed line at frequency f_(d) represents conversion frequency of the decimation filter to which waveform (v) is output. The dashed line at frequency f_(s) represents the modulator's sampling frequency.

FIG. 6 also shows three noise-shaping curves: curve (1) corresponding to a first-order sigma-delta modulator; curve (2) corresponding to a second-order sigma-delta modulator; and curve (3) corresponding to a third-order sigma-delta modulator. As apparent from FIG. 6, higher-order sigma-delta modulators better confine the noise spectrum to higher frequencies and thus make it easier to filter out this noise.

FIG. 7 illustrates an exemplary implementation of the ADCs described in FIG. 5. Specifically, FIG. 7 illustrates an image sensor 700 which is similar to image sensor 100 described above, except that elements 103-105 are implemented as a plurality of second-order sigma-delta ADCs 500-1 to 500-n. For clarity of explanation, only two of the n sigma-delta ADCs are explicitly illustrated.

In FIG. 7, filters 507-1 to 507-n are illustrated as being downstream from the delta-sigma modulators. In this manner, raw scaling in the digital domain may be performed. Alternatively or additionally, filters may be placed upstream from the delta-sigma modulators so as to perform raw scaling in the analog domain. In implementations where filters are placed both upstream and downstream from the delta-sigma modulators, greater scaling flexibility may be achieved. For example, one can choose to filter either in the analog or digital domain, or may filter particular pixels (for example, filtering in the horizontal direction) in the analog domain and other pixels (for example, filtering in the vertical direction) in the digital domain.

As illustrated in FIG. 7, filters 507-1 to 507-n include decimation filters used to calculate the multi-bit output values from the outputs of the corresponding sigma-delta modulators. Specifically, the decimation filters respectively calculate weighted averages of time samples. Filters 507-1 to 507-n also include raw image scaling filter (RISF) circuits, which process the input raw pixels to give output raw pixels at the desired output resolution. Specifically, the RISF circuits calculate weighted averages of spatial samples. During operation, the RISF circuits calculate weighted averages of selected input raw pixels using filter coefficient values (as will be described in more detail below) for raw image scaling to give the output raw pixels. For example, filter coefficient values according to the BCRS method can be used to achieve high output image quality.

[Scaling]

In practical imaging system implementations, the raw domain scaling method can be implemented either in hardware or software, or a mixture of both. For software implementations, the calculations in the scaling method can be implemented using embedded processors, digital signal processors, general purpose processors, software simulation units, and the like. For hardware implementations, the calculations in the scaling method can be implemented using digital means or analog means. Digital implementation in hardware uses digital logic elements such as gates, latches, arithmetic units, and the like. The logic elements can be included into an ASIC, an FPGA, discrete elements, or other programmable circuits. Analog implementation in hardware can include capacitive or resistive circuit elements such as summing junctions, voltage or current dividers, operational amplifiers, and the like.

The raw scaling method can be considered a filtering process followed by decimation. Scaling occurs according to a scaling factor (1/N)×, where a Bayer input region of 2N×2N is processed to produce a 2×2 Bayer output region.

FIG. 8 illustrates a filtering process where weighted averages of the input raw pixels are calculated as values of the output raw pixels. This is referred to as an RISF filtering as above. Particularly, FIG. 8 illustrates raw image scaling for a scaling factor (½)×; that is, the resolution of the image in both the horizontal and vertical direction are reduced by a factor of ½ the resolution of the input data. In the particularly illustrated filtering procedure, the pixel values of each red pixel are considered to be in a red pixel array R defined as {r_(1,1), r_(1,2), r_(2,1), r_(2,2)}. Red pixel array R is operated on by a red filter coefficient array H defined as {h0, h1, h2, h3} to provide an output red pixel R′. Specifically, each element of red pixel array R is multiplied by the corresponding element of red filter coefficient array H. That is, the coefficients in the red filter array are weights to be applied to the corresponding pixel values in the red pixel array. The products are then added together and divided by the sum of all elements of red filter coefficient array H to produce the output red pixel R′. Mathematically, this is represented by the following expression (1):

$\begin{matrix} {R^{\prime} = \frac{{r_{1,1}h\; 0} + {r_{1,2}h\; 1} + {r_{2,1}h\; 2} + {r_{2,2}h\; 3}}{{h\; 0} + {h\; 1} + {h\; 2} + {h\; 3}}} & (1) \end{matrix}$

Similarly, the pixel values of each green pixel in red rows are considered to be in a first green pixel array G1 defined as {g1_(1,1), g1_(1,2), g1_(2,1), g1_(2,2)} and are operated on by a first green filter coefficient array I defined as {i0, i1, i2, i3} to output first green pixel G1′; the pixel values of each green pixel in blue rows are considered to be in a second green pixel array G2 defined as {g2_(1,1), g2_(1,2), g2_(2,1), g2_(2,2)} and are operated on by a second green filter coefficient array J defined as {j0, j1, j2, j3} to output second green pixel G2′; and the pixel values of each blue pixel are considered to be in a blue pixel array B defined as {b_(1,1), b_(1,2), b_(2,1), b_(2,2)} and are operated on by a blue filter coefficient array K defined as {k0, k1, k2, k3} to output blue pixel B′. In this example, four filter weights are used for each color and therefore four input pixels are used to calculate each output pixel value. The region of support (that is, the number and location of pixels used) for the RISF may be changed, and the scaling factor may also be changed.

BCRS utilizes optimized filter coefficients, which are described here. FIG. 9 illustrates an exemplary set of optimized filter coefficient arrays for a scaling factor (⅓)×. The filter coefficients are applied to the raw pixels in the spatial domain. In other words, the respective grids shown in the arrays of FIG. 9 represent the pixel coordinates where each rectangle corresponds to a raw pixel.

One of ordinary skill will recognize that raw domain image scaling methods other than BCRS can be used in the current invention to achieve efficient implementations. Changing the raw domain scaling method simply requires changing the numerical values of individual filter weights and/or the regions of support of the filter.

An example of BCRS with a scaling factor of (⅓)× (that is, N=3) is illustrated in FIG. 10. In this case, the input raw image is divided into tiles of size 6×6, and from each 6×6 input tile the scaling method calculates a 2×2 block of the output image. As illustrated, each 6×6 input tile 1010 is divided into four 3×3 sub-tiles 1011-1014 that respectively represent the physical area of virtual pixel 1021-1024 in a block 1020 of a virtual image sensor having a lower resolution equal to the scaled resolution. That is, the virtual image sensor would have ⅓ the resolution both vertically and horizontally compared to the actual image sensor used for capturing the raw image data.

Sub-tiles 1011-1014 are identified by the color of the corresponding virtual pixel 1021-1024, under the assumption that the virtual image sensor uses the same Bayer CFA as the actual image sensor. For example, sub-tile 1011 is identified as an R sub-tile because it corresponds to virtual pixel 1021, which is positioned where the R filter would be in a Bayer CFA on the virtual image sensor. Similarly, sub-tile 1012 is identified as a G1 sub-tile, sub-tile 1013 as a G2 sub-tile, and 1014 as a B sub-tile.

A similar example of BCRS with a scaling factor of (¼)× is illustrated in FIG. 11. That is, the input raw image is divided into tiles of 8×8, and from each 8×8 input tile the scaling method calculates a 2×2 output block. Here, each 8×8 tile 1110 is divided into four 4×4 sub-tiles 1111-1114 that respectively represent the physical area of a virtual pixel 1121-1124 in a block 1120 of a virtual image sensor having a resolution equal to ¼ the resolution both vertically and horizontally compared to the actual image sensor.

In both FIGS. 10-11, the geometric pixel centers of the virtual pixels 1021-1024 and 1121-1124 are indicated by dashed lines. The corresponding physical locations are indicated by arrows in input tiles 1010 and 1110; these are collocated with the centers of the sub-tiles 1011-1014 and 1111-1114.

Mathematically, the scaling process can be written as a convolution according to the following expression (2):

$\begin{matrix} {{y\left( {m,n,t} \right)} = {\sum\limits_{k,l}\; {{w\left( {{m - k},{n - l}} \right)}{x\left( {k,l,t} \right)}}}} & (2) \end{matrix}$

In this convolution, w(k,l) represents the filter coefficients such as those described above with regard to FIG. 9, x(k,l,t) is the input pixel at location (k,l) at time t, and y(m,n,t) is the output raw pixel at location (m,n) at time t. Both the input and output raw pixel values x(k,l,t) and y(m,n,t) are written with an explicit dependence on time. The RISF is a spatial filter where weighted averages of neighboring pixel values are calculated. The RISF coefficients are not dependent on time (that is, they are constant with respect to time), and hence the time index is not needed in w(k,l).

The preferred filter is a decimation filter for sigma-delta modulation, and is a time domain filter which operates on the output samples from a sigma-delta modulator at an oversampling ratio β. A sinc filter of length β with filter weights equal to a scaled version of the sinc function, which corresponds to a box function in the frequency domain, is frequently used. Mathematically, this is written according to the following expression (3):

$\begin{matrix} {{x\left( {k,l,t} \right)} = {{x\left( {k,l,{\beta \; v}} \right)} = {{\sum\limits_{p = {- \infty}}^{\infty}\; {\frac{1}{\beta}{{sinc}\left( \frac{{\beta \; v} - p}{\beta} \right)}{q\left( {k,l,p} \right)}}} \approx {\sum\limits_{p = {{\beta {({v - \frac{1}{2}})}} + 1}}^{\beta {({v + \frac{1}{2}})}}\; {\frac{1}{\beta}{{sinc}\left( \frac{{\beta \; v} - p}{\beta} \right)}{q\left( {k,l,p} \right)}}}}}} & (3) \end{matrix}$

Above, q(k,l,p) is the output sequence from the sigma-delta modulator which are binary samples (either 0 or 1) at β times the Nyquist rate. Since the impulse response of a sinc filter has infinite length, it is frequently truncated in practice as shown in expression (3) above. For convenience in practical implementations, the impulse may be shifted by half a sampling period in the output and therefore may be represented by the following expression (3′):

$\begin{matrix} {{x\left( {k,l,t} \right)} = {{x\left( {k,l,{\beta \; v}} \right)} \approx {\sum\limits_{p = {{\beta {({v - 1})}} + 1}}^{\beta \; v}\; {\frac{1}{\beta}{sinc}\frac{{\beta \left( {v - \frac{1}{2}} \right)} - p}{\beta}{q\left( {k,l,p} \right)}}}}} & \left( 3^{\prime} \right) \end{matrix}$

Either expression (3) or (3′) may be used, and the particular choice of expression does not impact the output signal as an accurate representation of the analog input. Other decimation filters are also possible and will be apparent to one skilled in the art.

From the above expressions, the output pixel from the image sensor after image scaling can be written according to the following expression (4):

$\begin{matrix} {{y\left( {m,n,t} \right)} = {{\sum\limits_{k,1}\; {{w\left( {{m - k},{n - l}} \right)}{x\left( {k,l,t} \right)}}} = {{\sum\limits_{k,1}\; {{w\left( {{m - k},{n - l}} \right)}{\sum\limits_{p = {{\beta {({v - 1})}} + 1}}^{\beta \; v}{\frac{1}{\beta}{{sinc}\left( \frac{{\beta \left( {v - \frac{1}{2}} \right)} - p}{\beta}\; \right)}{q\left( {k,l,p} \right)}}}}} = {\sum\limits_{k,1}{\left\lbrack {\sum\limits_{p = {{\beta {({v - 1})}} + 1}}^{\beta \; v}\; {{w\left( {{m - k},{n - l}} \right)}\frac{1}{\beta}{{sinc}\left( \frac{{\beta \left( {v - \frac{1}{2}} \right)} - p}{\beta}\; \right)}}} \right\rbrack {q\left( {k,l,p} \right)}}}}}} & (4) \end{matrix}$

Above, the term enclosed in square brackets represents the impulse response of the sinc filter scaled by the weights of the raw image scaling filter. FIG. 7 shows an image sensor where the RISF has been integrated into the ADCF. In particular, the integrated ADCF/RISF in FIG. 7 implements the logic to first calculate the following expression (5):

$\begin{matrix} {{s\left( {m,n,p,k,l} \right)} = {\sum\limits_{p = {{\beta {({v - 1})}} + 1}}^{\beta \; v}\; {{w\left( {{m - k},{n - l}} \right)}\frac{1}{\beta}{{sinc}\left( \frac{{\beta \left( {v - \frac{1}{2}} \right)} - p}{\beta}\; \right)}{q\left( {k,l,p} \right)}}}} & (5) \end{matrix}$

For each pixel location in the input image, the integrated ADCF/RISF calculates the output samples using an accumulator that either sums the scaled sinc filter impulse response or skips the accumulation depending on the binary sample q(k,l.p). This step is possible and can be calculated very easily because the samples q(k,l,p) have values equal to either 1 or 0. After the ADCF has completed calculation of the inner summation, the outer summation indexed by k,l are calculated by the RISF by communicating the partial sums between the accumulators. In a column-based ADC where one ADC is provided for a small number (for example, three) of columns, the pixels flow sequentially into the ADC and hence the summation over k,l can be performed accordingly.

[Implementation]

Image sensors typically use many ADCs in parallel to perform analog-to-digital conversion of many pixels simultaneously, so that high frame rates can be achieved. For example, according to a “column ADC” architecture, one or a plurality of columns (one-column, two-column sharing, three-column sharing, etc.) are connected to a single ADC.

FIG. 12 illustrates an exemplary implementation according to a three-column sharing ADC architecture. Image sensor 1200 includes a pixel array 1201 divided into a plurality of rows and columns. Respective columns are connected to column circuits, of which three are illustrated. Each column includes a multiplexer 1202, a sigma-delta ADC 1203, and a filter 1204. To facilitate processing the Bayer structured data as shown in FIG. 2, the first ADC (that is, ADC 1203-1) is arranged such that it is connected to columns 0 (the left-most column), 2, and 4 via multiplexer 1202-1. Similarly, the second ADC (that is, ADC 1203-2) is arranged such that it is connected to columns 1, 3, and 5 via multiplexer 1202-2. The arrangement of ADCs and multiplexers for the entire pixel array is repeated in a similar fashion across the array.

FIG. 13 illustrates another exemplary implementation using dual-port sigma-delta ADCs. A dual-port sigma-delta ADC is a sigma-delta ADC cell which includes two independent ADCs in a single unit. These are distinguished as Port A and Port B. As illustrated in FIG. 13, image sensor 1300 includes a pixel array 1301 and a plurality of column circuits (of which one is illustrated) comprising, for the illustrated column circuit, a multiplexer 1302-1, a dual-port sigma-delta ADC 1303-1, and a pair of RISF/ADCF filters 1304-1 a and 1304-1 b. Columns 0-5 are routed into ADC 1303-1 via multiplexer 1302-1, such that the signals from columns 0, 2, and 4 are fed through input port IN_(a) and columns 1, 3, and 5 are fed through input port IN_(b). The output from output port OUT_(a) is connected to integrated RISF/ADCF 1304-1 a, whereas the output from output port OUT_(b) is connected to integrated RISF/ADCF 1304-1 b.

FIG. 14 shows the schedule of operation for an integrated RISF/ADCF to produce the first output red pixel (for example, output pixel 1021 of FIG. 10), using the optimized BCRS of FIG. 9. In this example, the ADC works in a three-column sharing structure (for example, the structure of FIG. 12 or FIG. 13), and therefore there are three timing phases where each phase corresponds to a column of pixels to which the ADC is connected. To illustrate the processing steps of FIG. 14, reference is made to FIG. 10. Prior to row 0 phase 0, the accumulators used to store the partial sums are reset. During row 0 phase 0, the sigma-delta ADC takes an input from the red pixel 1011 of FIG. 10. This pixel is labeled as R(0,0) in FIG. 14. The sigma-delta modulator, operating at an oversampling ratio β, generates β binary samples which are labeled as r(0,0,0) to r(0,0,β−1) in FIG. 14. During this time, the filter coefficient with a weight value of 13 is presented by the RISF to an accumulator. In this embodiment, the filter weight is used to scale the decimator filter (sinc or other decimation filter) coefficients. The logic in the filter is arranged such that the filter weight value is accumulated if a binary value r(k,l,m) equals 1, and skipped otherwise. In this case, the accumulator output is calculated as a weighted sum of the scaling filter weight (here, 13) multiplied by the binary output of the sigma delta output and the decimation filter coefficient. For ease of illustration, the decimator coefficients (for example, of the sinc filter) are not shown in the schedules of FIGS. 14-17. It will be understood that they are present and are scaled by the RISF weights.

When this is completed the filter goes to row 0 phase 1 where the red pixel at row 0 column 2 of FIG. 10 is presented to the sigma-delta ADC. This is labeled as R(0,2) in FIG. 14. The sigma-delta modulator generates the binary samples labeled as r(0,2,0) to r(0,2,β−1) in FIG. 14. During this period, the filter weight value 13 is presented, which is used with the sinc filter weights in the accumulation of s(m,n,p,k,l) if a binary value r(k,l,m) equals 1 and skipped otherwise. This procedure is repeated during row 0 phase 2 as shown in FIG. 14, where the filter weight value for this period equals 3.

At the end of row 0 phase 2, the filter has accumulated partial sums for the output red pixel value. The first output R value is not completely determined at this point because rows 2 and 4 have not yet been processed according to the RISF. The next step is determined by the particular image sensor implementation. In a preferred implementation where the image sensor includes a sequencer so that pixel rows can be read out (that is, presented to the ADC) in any arbitrary ordering, the next rows to be read will be row 2 and then row 4. In this case, processing for the output red pixel continues with row 2 and row 4 as shown in FIG. 14, in a similar manner to the process for row 0. At the end of row 4 phase 2, the sum required by the RISF and ADCF are computed. The sum is then divided by 64 for the RISF (which can be implemented as a right shift operation) and finally divided by β as required by the ADCF. After this step, the computed R pixel value is sent to the output, and the accumulator is reset.

Similarly, the first output G2 pixel (1023 in FIG. 10) can be computed using a schedule as shown in FIG. 15. In this schedule, the reading out of the rows is arranged in an ordering such that row 5 is read out first, followed by row 3, and then row 1. This is preferred so that the filter weight values can be presented in the same ordering as in FIG. 14. Therefore, considering the calculation of the first output R and G2 pixels, the first six rows are read out in this example in the order 0→2→4→5→3→1.

The row ordering 0→2→4→5→3→1 above is an example where the ordering of presenting the filter coefficients is fixed. Other row orderings can be used; for example, 0→2→4→1→3→5. In such a case, the ordering of presenting the filter weights will be changed accordingly.

In a three-column sharing structure, the G1 and B columns use a separate ADC from the R and G2 columns. The output G1 and B pixels are computed by their respective integrated RISF/ADCF in a similar fashion. FIGS. 16 and 17 show an exemplary schedule of the integrated RISF/ADCF for computing the R and G2 pixels. In this example, pixels from column 5 are fed to the sigma-delta module prior to column 3, which is prior to column 1. This ordering can be controlled by the multiplexers in FIG. 12 or 13.

In sensor embodiments where rows of pixels must be read out in a top-to-bottom ordering, an integrated RISF/ADCF can be implemented with additional storage and logic elements.

For example, the case of the schedule of FIG. 14 at a point where the partial sum calculations for row 0 phase 2 have been completed is considered. In this case, because row 1 must be read out before row 2, the partial sum after the calculations in row 0 (specifically, immediately after row 0 phase 2) must be stored. This requires a memory element to store the R partial sum from the three columns. After the R partial sum is stored, the accumulator in the RISF is reset, and the pixels in the first three columns of row 1 are fed to the ADC. A similar procedure occurs for the other ADCs working in parallel in the image sensor. The integrated RISF/ADCF follows the schedule for row 1 phases 0-2 as listed in FIG. 15. After row 1 phase 2, the partial sum for the first G2 pixel is stored. Concurrently, other ADCs are performing similar operations and the partial sum for other G2 pixels are stored, one for each three columns. At this point, the stored partial sums for the R pixels are respectively loaded into the corresponding accumulators, and the procedure continues from row 2 phase 0 in FIG. 14. This alternating procedure continues until the end of row 4 phase 2, at which point the value in each accumulator is right-shifted and divided as required by the RISF and ADCF. The resulting R values, one from each RISF/ADCF, are sent to the output. Thereafter, the G2 partial sums are loaded into the accumulators, and the schedule for row 5 in FIG. 15 is followed. After row 5 phase 2, the value in each accumulator is right-shifted and divided according to the RISF and ADCF. The resulting G2 values are send to the output.

Operation of the integrated RISF/ADCF is described above for image sensor embodiments with a three-column sharing architecture, for two different types of pixel readout ordering. The method can be extended in a straightforward manner to image sensors with other ADC column sharing structures, other readout orderings, and for other scaling factors, as will be readily recognized in the art.

CONCLUSION

With regard to the processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the claims.

Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent upon reading the above description. The scope should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the technologies discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the application is capable of modification and variation.

All terms used in the claims are intended to be given their broadest reasonable constructions and their ordinary meanings as understood by those knowledgeable in the technologies described herein unless an explicit indication to the contrary in made herein. In particular, use of the singular articles such as “a,” “the,” “said,” etc. should be read to recite one or more of the indicated elements unless a claim recites an explicit limitation to the contrary.

The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter. 

What is claimed is:
 1. A method of processing raw image pixel information, comprising: applying an integrated decimation filter and raw image scaling filter, wherein the decimation filter operates in a time domain and the raw image scaling filter operates in a spatial domain.
 2. The method of claim 1, further comprising: calculating, by the decimation filter, a weighted average of time samples.
 3. The method of claim 1, further comprising: calculating, by the raw image scaling filter, a weighted average of spatial samples.
 4. The method of claim 1, further comprising: capturing, by an image capturing device, the raw image pixel information.
 5. The method of claim 4, wherein the image capturing device is a color image sensor.
 6. The method of claim 1, further comprising: prior to the step of applying the integrated decimation filter and raw image scaling filter, converting, by a sigma-delta analog-to-digital modulator, the raw image pixel information.
 7. The method of claim 1 wherein the raw image pixel information includes sigma-delta modulated pixel values.
 8. An image processing circuit, comprising: an integrated decimation filter and raw image scaling filter configured to process raw image pixel information, wherein the decimation filter operates in a time domain and the raw image scaling filter operates in a spatial domain.
 9. The image processing circuit according to claim 8, wherein the decimation filter is further configured to calculate a weighted average of time samples.
 10. The image processing circuit according to claim 8, wherein the raw image scaling filter is configured to calculate a weighted average of spatial samples.
 11. The image processing circuit according to claim 8, wherein the raw image pixel information is information captured from an image capturing device.
 12. The image processing circuit according to claim 11, wherein the image capturing device is a color image sensor.
 13. The image processing circuit according to claim 8, further comprising a sigma-delta analog-to-digital modulator configured to modulate the raw image pixel information.
 14. The image processing circuit according to claim 8, wherein the raw image pixel information includes sigma-delta modulated pixel values.
 15. An imaging device, comprising: an image capturing device including a pixel array; and a sigma-delta analog-to-digital converter including an integrated decimation filter and raw image scaling filter configured to process raw image pixel information, wherein the decimation filter operates in a time domain and the raw image scaling filter operates in a spatial domain.
 16. The imaging device according to claim 15, wherein the decimation filter is further configured to calculate a weighted average of time samples.
 17. The imaging device according to claim 15, wherein the raw image scaling filter is configured to calculate a weighted average of spatial samples.
 18. The imaging device according to claim 15, wherein the image capturing device is a color image sensor. 